package com.niiwoo.activity.stage.dto.request.prize;

import com.niiwoo.activity.stage.enums.prize.UserPrizeActionTypeIdEnum;
import com.niiwoo.activity.stage.enums.prize.UserPrizeSendWayEnum;
import com.niiwoo.activity.stage.enums.prize.UserPrizeTypeIdEnum;

import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotNull;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description
 * @Author zq
 * @Date 2017/11/25
 */
@Getter
@Setter
public class ActivityPrizeVoucherReqDTO extends BaseActivityReqDTO implements Serializable {

    // 用户ID
    @NotNull
    private String userId;

    // 红包类型
    @NotNull
    private UserPrizeTypeIdEnum prizeTypeIdEnum;

    // 红包来源
    @NotNull
    private UserPrizeActionTypeIdEnum actionTypeIdEnum;

    //value = "红包名称
    @NotNull
    private String prizeName;

    // 红包金额
    @NotNull
    private BigDecimal prizeValue;

    //加息/折扣利率
    private BigDecimal investRate;

    //加息/折扣月份
    private Byte numberMount;
    
    // 加息券加息时间单位，numberMount单位，0月，1天
    private Byte rateIncreaseType;

    //适用金额最小值
    private BigDecimal minSuitProjectAmount;

    //适用金额最大值
    private BigDecimal maxSuitProjectAmount;

    //适用标的期限
    private Byte suitProjectLimit;

    //红包描述
    @NotNull
    private String prizeDescription;

    //有效开始时间
    private Date effectiveStart;

    //有效结束时间
    private Date effectiveEnd;

    //最高折扣金额;加息券最大返息值
    private BigDecimal maxDiscountAmount;

    //适用标的期限最小值
    private Byte minSuitProjectLimit;

    //适用标的期限最大值
    private Byte maxSuitProjectLimit;

    //适用标的类型(说明：0：不限类型、1：信用借、2：悄悄借、3：消费借、4：极速借，可多选，例如：“1,2”或者“2,4”等）
    private String suitProjectType;

    //获奖明细记录Id（tab_gainRecordDetail表Id）
    private Long gainRecordDetailId;

    //奖品表（tab_goods）Id
    private Long goodsId;

    //活动编码(tab_activity表activityCode)
    private String activityCode;

    //发送方式：0自动发送 1人工发送
    @NotNull
    private UserPrizeSendWayEnum sendWayEnum;

    //创建人id
    private Long createManagerId;

    //创建人姓名
    private String createManagerName;

    // 是否自动审核 默认不自动审核
    private boolean autoAudit = false;
    
}
